/*
 * @Author: likaijie 847094299@qq.com
 * @Date: 2025-04-07 09:23:14
 * @LastEditors: likaijie 847094299@qq.com
 * @LastEditTime: 2025-04-07 12:51:32
 * @Description:
 */
import { http } from "@/utils/http";

/**
 * 更新国家排序
 * @param id - 国家配置ID
 * @param sortOrder - 新的排序序号
 */
export const updateCountrySortOrder = (id: number, sortOrder: number) => {
  return http.request<any>("put", `/api/admin/countries/${id}/sort-order`, {
    params: { sortOrder }
  });
};

/**
 * 更新国家启用状态
 * @param id - 国家配置ID
 * @param enabled - 是否启用（true 启用，false 禁用）
 */
export const updateCountryEnabled = (id: number, enabled: boolean) => {
  return http.request<any>("put", `/api/admin/countries/${id}/enabled`, {
    params: { enabled }
  });
};

/**
 * 更新国家展示名称
 * @param id - 国家配置ID
 * @param displayName - 新的展示名称
 */
export const updateCountryDisplayName = (id: number, displayName: string) => {
  return http.request<any>("put", `/api/admin/countries/${id}/display-name`, {
    params: { displayName }
  });
};

/**
 * 获取所有国家配置
 * 支持通过 source 和 onlyEnabled 参数过滤
 * @param params.source - 国家来源，例如 "tgCountry" 或 "wasCountry"（可选）
 * @param params.onlyEnabled - 是否只返回启用的（可选）
 */
export const getAllCountries = (params?: {
  source?: string;
  onlyEnabled?: boolean | string;
}) => {
  return http.request<any>("get", "/api/admin/countries", { params });
};

/**
 * 创建自定义国家配置
 * @param params.code - 国家代码
 * @param params.displayName - 展示名称
 * @param params.enabled - 是否启用（可选）
 * @param params.source - 国家来源（可选）
 */
export const createCustomCountry = (data: {
  countryCode: string;
  displayName: string;
  enabled?: boolean;
  source?: string;
}) => {
  return http.request<any>("post", "/api/admin/countries", { data });
};

/**
 * 根据ID获取国家配置详情
 * @param id - 国家配置ID
 */
export const getCountryById = (id: number) => {
  return http.request<any>("get", `/api/admin/countries/${id}`);
};

/**
 * 根据国家代码获取国家配置详情
 * @param code - 国家代码
 */
export const getCountryByCode = (code: string) => {
  return http.request<any>("get", `/api/admin/countries/code/${code}`);
};

/**
 * 删除自定义国家配置（仅允许删除自定义国家）
 * @param id - 国家配置ID
 */
export const deleteCustomCountry = (id: number) => {
  return http.request<any>("delete", `/api/admin/countries/${id}`);
};
